perm filename SERVO.DOC[CMS,LCS] blob sn#469395 filedate 1979-08-24 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002		JOINT SERVO INTERFACE.
C00005 00003		SHARED MEMORY DEFINITIONS.
C00009 00004		SHARED MEMORY DEFINITIONS.
C00012 ENDMK
CāŠ—;
	JOINT SERVO INTERFACE.

HOST - JOINT COMMUNICATION.

Host - joint interface system.
	The host - joint interface system is a standard LSI 11 parallel
interface which is connected through the joint i/o interface board
to each joint processor's memory. The joint i/o interface board also
serves as the host's connection to the external parallel inputs and
outputs.
 
CSR0.
	The CSR0 bit is the address/data bit for I/O transfers to
and from the joint processors memory. 0 for address and 1 for data.

CSR1.
	The CSR1 bit is the read/write bit for I/O to the joint
processors memory. 0 for read and 1 for write.

DRINBUF.
	The input buffer is used to read data from a joint's memory
when a joint is addressed and CSR1 is not set. This buffer is also
used for the same functions as the earlier board (XIN, INTOL, ATTN REQ,
etc.) .

DROUTBUF.
	When CSR0 is 0 the output buffer is used to address the memory
and select the joint. Bits 0 through 2 select the joint, and bits
8 through 13 are the complement of the memory address. Bit 3, when
set, enables the joint select counter for accessing the joints in
sequence.
	When CSR0 is 1 the output buffer is used to write data to the
selected joint's memory.
	The output buffer also is used for other functions as in the
earlier board (XOUT, etc.) .

	When CSR0 is set, reading the DRINBUF by the host when CSR1
is set, or writing the DROUTBUF by the host when CSR1 is clear,
should be avoided because doing so transfers data according to CSR1.

	When reading a joint's memory immediately after writing the
same location without clearing CSR0, it is nessesary to read DRINBUF
twice before getting valid data.
	SHARED MEMORY DEFINITIONS.

STATUS:	77000
	Bit 15 is the servo error bit. It is set if any error bit in
the status word is set. When it is set, the servo enable bit in the
mode word is cleared unless the diagnostic bit in the mode word is set
and the cause of the error is a host time out (bit 13 in STATUS).
	Bit 14 is the check word error bit.
	Bit 13 is the host time out error bit.
	Bit 12 is the joint interrupt error bit.
	Bit 11 is the position out of range error bit.
	All other bits of the STATUS word are undefined. Bits 8 through 15
of the STATUS word are cleared after a reset.

MODE:	76000
	Bit 15 of the mode word is the servo enable bit. When clear,
the DAC output will allways be zero. It must be set before the joint
will accept a position command or servo in diagnostic mode.
	Bit 14 is the integrator enable bit.
	Bit 13 is the LSB servo enable bit.
	Bit 12 is the diagnostic mode enable bit. When set and the
servo is enabled, host time out errors are disabled from clearing the
servo enable bit in the MODE word.
	All other bits are undefined. Bits 8 through 15 of the MODE word
are cleared after a reset.

CKWORD:	75000
	This word is set to 377 (octal) by the joint on reset and when
written by the host is used as a command. After being read by the
joint, the joint resets it to 377 to handshake with the host.
	There are only two valid commands so far. 177001 is a no-op
and 177400 is the position command. Before a position command is
written the servo must be enabled in the MODE word and the new position
must be written in the CMDPOS word.
	Invalid commands cause the joint processor to go into stop mode and
set the check word error bit.	

CMDPOS:	74000
	This word is used for the new position value in a position command.
Bits 14 and 15 must match or the joint will go into stop mode and set the
position out of range error flag.

IOCTRL:	73000
	This word is a copy of the JCR output port in bits 8 through
15. IOCTRL is read only. Bit 10 is the position mode bit which, when
cleared, puts the joint in free mode (setpoint tracks encoder) .

CURPOS:	72000
	This is the current position from the encoder.
	SHARED MEMORY DEFINITIONS.

NINTER:	71000	Bits 8 through 15 of this word are the number of interpolations
		per host command. The number of interpolations defaults to 16
		after a reset.

INTSCL:	70000	Bits 8 through 15 are the number of right shifts for the
		interpolating increment. The number of shifts defaults to 4
		after a reset.

HSTLIM:	67000	Bits 8 through 15 are the number of joint processor tick
		interrupts before the processor times out and clears the
		servo enable bit in the MODE word. Number of ticks defaults to
		24 after a reset.

VGAIN:	66000	Floating point velocity error gain.
		(136413 octal = -0.125 for a gain of 1.)

GRAVTY:	65000	Integer DAC offset variable.

POSTOL:	64000	Integer position tolerance band variable.

INTTOL:	63000	Integer integrator tolerance band variable.

PGAIN:	62000	Floating point position error gain.
		(40013 octal = 1.0 for a gain of 1.)

VELERR:	61000	Integer velocity error.

VSUM:	60000	Integer average velocity * 8. (Sum of last eight velocitys).

FSCL:	57000	Bits 8 through 15 are the number of right shifts for the
		friction offset. Number of shifts defaults to 6 after a
		reset.

SETPT-1:56000	Bits 8 through 15 of this word are the fractional byte of the
		current setpoint. This word is not in lockout sync with SETPT.

SETPT:	55000	This word is the current setpoint.

DACSIG:	54000	Bits 8 through 15 of this word are the last value the DAC got
		unless the servo is disabled, in which case they are undefined.

ACGAIN:	53000	Floating point acceleration gain. Defaults to 0 after a reset.